/*
* vertexes.c
*
* Copyright © 2021 vetal .
*
* This file is part of OpenGL_VAO.
*
* OpenGL_VAO is free software: you can redistribute it and/or modify
* it under the terms of the GNU General Public License as published by
* the Free Software Foundation, either version 3 of the License, or
* (at your option) any later version.
*
* OpenGL_VAO is distributed in the hope that it will be useful,
* but WITHOUT ANY WARRANTY; without even the implied warranty of
* MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
* GNU General Public License for more details.
*
* You should have received a copy of the GNU General Public License
* along with OpenGL_VAO. If not, see <http ://www.gnu.org/licenses/>.
*/


/*
  Vertexes source code

*/

#ifndef VERTEXES_C
#define VERTEXES_C

#define GL_GLEXT_PROTOTYPES

#include <GL/gl.h>
#include <GL/glx.h>
#include <GL/glu.h>
#include <GL/glext.h>
#include <GL/glcorearb.h>


unsigned int CreateVBO(float* verts, unsigned int size) {
  unsigned int VBO;
  glGenBuffers(1, &VBO);
  glBindBuffer(GL_ARRAY_BUFFER, VBO);
  glBufferData(GL_ARRAY_BUFFER, size, verts, GL_STATIC_DRAW);
  return VBO;
};

unsigned int CreateVAO(float* verts, unsigned int size) {
  unsigned int VAO;
  glGenVertexArrays(1, &VAO);
  glBindVertexArray(VAO);

  unsigned int VBO;
  VBO = CreateVBO(verts, size);
  glVertexAttribPointer(0, 3, GL_FLOAT, GL_FALSE, 3 * sizeof(float), (void*)0);
  glEnableVertexAttribArray(0);
  return VAO;
};

#endif
